// stdx/async_iterx.rs
// CRITICAL: 异步迭代（特征与基本模式）示例。注意：完整 async-stream 需要 async runtime。
// AUTO_COMMENT: 示例尽量不依赖运行时，仅展示 trait/类型用法。

#[allow(dead_code)]
pub fn stdx_examples_async_iterx() {
    // CRITICAL: 标准库提供 Future/Stream trait 支持，但 Stream 在 futures crate 中更常见。
    // AUTO_COMMENT: 这里只说明概念，不运行异步任务。
    let _info =
        "Async iterators are commonly provided by external crates like futures or async-stream";
    let _ = _info;

    // CRITICAL: 模拟异步迭代器 trait（实际在 futures crate）
    // trait AsyncIterator {
    //     type Item;
    //     async fn next(&mut self) -> Option<Self::Item>;
    // }

    // CRITICAL: 使用 async fn 生成异步流
    async fn async_range(n: usize) -> Vec<usize> {
        let mut v = Vec::new();
        for i in 0..n {
            // 模拟异步操作
            v.push(i);
        }
        v
    }

    let future_vec = async_range(5);

    // CRITICAL: 异步适配器概念（map, filter 等）
    // 实际使用需要 futures::stream::StreamExt

    let _ = (future_vec,);
}
